home *** CD-ROM | disk | FTP | other *** search
/ FishMarket 1.0 / FishMarket v1.0.iso / fishies / 001-025 / disk_022 / lemacs / readme < prev    next >
Text File  |  1992-05-06  |  15KB  |  455 lines

  1.     MicroEMACS 3.6    new goodies
  2.  
  3. - CMODE additions
  4.  
  5.     in CMODE, pressing a '#' when there is only preceding whitespace
  6. on a line causes the whitespace to be deleted.  (for preprocesser
  7. commands to be brought up against the left margin. 
  8.  
  9. - Next Buffer command
  10.  
  11.     The Next Buffer command (^X-X) switches the current window to
  12. the next buffer in the buffer list (reading it in if needed).  This is
  13. good for editing lists of files (mainly on UNIX when the shell expands
  14. wild cards). 
  15.  
  16. - Fill paragraph modified
  17.  
  18.     The fill paragraph command (<ESC> Q) now puts two spaces after
  19. every period at the end of a word.  This is useful most of the time but
  20. occasionally will put in spurious spaces (like after a middle initial). 
  21. Any suggestions on an algorithm for dealing with english would be
  22. appreciated. 
  23.  
  24. - Kill paragraph command added
  25.  
  26.     <ESC> ^W is now bound to kill-paragraph.  This kills the current
  27. paragraph which the cursor is in.  A numeric argument will allow it to
  28. kill a number of paragraphs. 
  29.  
  30. - Global mode commands
  31.  
  32.     Set/delete global mode commands now allow the user to specify a
  33. default mode for newly created buffers.  Thus, for example, if you
  34. always wished to use EXACT case matching on a string, you could place a
  35. "Set global mode exact" in your startup file and all buffers would start
  36. with EXACT initially on. 
  37.  
  38. - Overwrite mode
  39.  
  40.     OVER mode allows you to type text over the top of other text
  41. without inserting it.  This mode is very good for editing tables of
  42. information. 
  43.  
  44. - Insert Space command added
  45.  
  46.     The Insert Space command (^C or INSERT) inserts a space in front
  47. of the cursor push any text to the right one character farther to the
  48. right.  This is a very usefull command while in OVERwrite mode. (I moved
  49. the bind-to-key function to now initially be bound to <ESC>-K)
  50.  
  51. - Hunt Forward/Backward
  52.  
  53.     The hunt commands allow you to search for the last string
  54. searched for without re-entering the string. Under PCDOS they are bound
  55. to <ALT>-S and <ALT-R> (the new function prefix proved even more
  56. verstile than I had thought when I wrote it. Do note the unusual
  57. declarations for them in EBIND.H) Under other environments they are not
  58. yet bound, and are probably best bound to a function key.
  59.  
  60. - Amiga Function/Cursor keys:
  61.  
  62.     are now supported. Function keys 1-10 are FN 0 - FN 9, shifted
  63. function keys are FN P - FN Y, cursor keys are FN A - FN D, shifted
  64. cursor keys are FN S, FN T, FN a, and FN @. (Use the describe-key
  65. function to find specific keys).
  66.  
  67. - Reverse video Status lines
  68.  
  69.     The status line for each buffer can now (due to popular demand)
  70. be in reverse video. This is configuable in ESTRUCT.H for people who
  71. might not want it.
  72.  
  73. - Several Bug fixes:
  74.  
  75.     A bug in DOBUF would cause non-terminated strings under some
  76. compilers has been fixed.
  77.  
  78.     Tabs when expanded on the AMIGA at display time sometimes caused
  79. MicroEMACS to hang, this is fixed. (Reported by Dawn Banks)
  80.  
  81.     The current column position was not always maintained properly
  82. when executing a keyboard macro, this is fixed. (Reported by Ernst Christen).
  83.  
  84.     Re-wrote word wrapping algorithm to be have better when
  85. inserting text into the middle of a paragraph.
  86.  
  87.     <NL>'s at the end of a search to replace string cause the
  88. replacement to terminate after they have done the first replacement on
  89. the last line of the file, preventing MicroEMACS to hang while infinitly
  90. replacing <NL>s.
  91.  
  92.  
  93. - Future enhancments may include:
  94.  
  95.     -s on command line for alternative startup file
  96.     numbered kill buffers
  97.     fence matching for CMODE
  98.     sort region command
  99.     sentence movement and deletion commands
  100.  
  101.     If you make modifications to let MicroEMACS 3.6 run under any
  102. new envirnments, please send me the changes. I am also looking for the
  103. include file "rainbow.h".
  104.  
  105.     Could some please test this out under the Mark Williams C
  106. compiler (which I do not have) and send me any needed changes to have it
  107. run properly [most probably in termio.c].
  108.  
  109.     Send any ideas, suggestions or futher goodies to
  110.             Daniel Lawrence
  111.             ihnp4!pur-ee!pur-phy!duncan!lawrence
  112.  
  113. =============================================================================
  114.     MicroEMACS 3.5
  115.  
  116.     This version of MicroEMACS is based on the version written by
  117. Dave G. Conroy, and latter modified by Steve Wilhite and George Jones.
  118. My thanks goes to them for writting such nice, well structured and
  119. documented code. It is nice to see that there are some people out there
  120. who know how to program well.
  121.  
  122.     I intend to continue to maintain this version and will consider
  123. adding features and supported machines on request. Current hardware
  124. supported includes:
  125.  
  126.     IBM-PC under PCDOS/MSDOS and many compatibles
  127.     Dec Rainbow
  128.     Commodore Amiga
  129.     Unix V7
  130.     Unix and Multix BSD 4.2
  131.     Hewlett Packard 150 and various upgrades
  132.  
  133. Features added to MicroEMACS since version 2.0 include:
  134.  
  135. - Meta repeat codes
  136.  
  137.     Striking the <ESC> key followed by a numeric argument (possibly
  138. with a leading minus sign) passes an argument down to a command which is
  139. usually used as a repeat count. This is similar to the ^U command, but
  140. there is no default value.
  141.  
  142. - Change in repositioning command
  143.  
  144.     The command to reposition the cursor now repositions it, by
  145. default, to the center of the current window, rather than the first line
  146. of the window. This I think is much more usefull and also consistant
  147. with many other emacs'.
  148.  
  149. - File writting message....
  150.  
  151.     For those of us with big files, when you start a write of a file
  152. to disk, the message [Writing..] now appears. This is so we know the
  153. machine is really still there. (Paranoids Ahead!)
  154.  
  155. - Search strings now can have <NL>s in them
  156.  
  157.     It is very usefull to be able to have newlines in search and
  158. replace strings. To do this, all text input to searching commands is now
  159. terminated by an <ESC>.
  160.  
  161. - Replace!!!!!
  162.  
  163.     Yes, now we can replace as well as search. There are two flavors
  164. of this command. <ESC> R allows us to replace each occurence of a string
  165. with another string from the current point to the end of the file. 
  166. <ESC> ^R also queries us at each string to see if we want to replace it.
  167. Typing a question mark here will display the options.
  168.  
  169. - Yes/no responces
  170.  
  171.     no longer require (or want) a return typed after them.
  172.  
  173. - Spawning
  174.  
  175.     Fixed up some MSDOS spawning messages. WARNING: If you have your
  176. switchchar set to a '-' instead of a '/' Lattice C may have problems
  177. when yanking up a new command processer. It will use a line like 
  178. COMMAND /C <command line>. You may have to rewrite this library function
  179. to get it to work on your system properly.
  180.  
  181. - Suspend MicroEMACS
  182.  
  183.     Under Unix BSD 4.2 we now have code to put the editor into the
  184. background and return to the parent shell. This is initially bound to
  185. the ^X D keys.
  186.  
  187. - Function keys
  188.  
  189.     Under MSDOS on IBM-PCs and compatibles, the function keys and
  190. cursor arrows now do what one would expect them to. There is a new
  191. prefix in the editor to accodate this. (Look in MAIN.C for this) This
  192. can be used to add function key support to most any machine by adding a
  193. small piece of code to reconize the keys in the getkey() routine in
  194. main.c, and adding the new definitions to the ebind.h header file.
  195.  
  196. - Abort (^G)
  197.  
  198.     now prints out [Aborted] on the command line so you know what
  199. happened.
  200.  
  201. - Editor Modes
  202.  
  203.     Buffers now have modes associated with them. These modes can be
  204. set with the set-mode (^X M) and the delete-mode (^X ^M) commands.
  205.  
  206. - CMODE mode
  207.  
  208.     When a file is read in with a .c or .h extention, CMODE is set
  209. for that buffer. (This can also be manually set/deleted[see above]) In
  210. CMODE, MicroEMACS attemts to be intelligent about doing automatic
  211. indentation for you. It will indent any line the same as the privious
  212. line unless the last line ended with a brace ({). Then it will indent an
  213. extra tab stop (which varies depending on how tabs are set). Any lines
  214. begining with a close brace (}) will by undented one tab stop if possible.
  215.  
  216. - WRAP mode
  217.  
  218.     This mode automatically wraps words onto the next line when the
  219. word extends beyond the current fill column.
  220.  
  221. - VIEW mode
  222.  
  223.     This mode disables all commands that can change the current buffer.
  224.  
  225. - EXACT mode
  226.  
  227.     Normally all searches are done ignoring case. With this mode
  228. set, only strings which exactly match the search string, including case,
  229. are matched.
  230.  
  231. - GOTO line command
  232.  
  233.     The goto-line (<ESC> G) command will go to a specific line
  234. number of the file. For example to go to the 76th line of a file, type:
  235.  
  236.     <ESC> 76 <ESC> G
  237.  
  238. - Rename buffer
  239.  
  240.     The command rename-buffer (<ESC> ^N) allows you to change the
  241. name of the current buffer.
  242.  
  243. - Paragraph movement
  244.  
  245.     The forward-paragraph (<ESC> N) and previous-paragraph (<ESC> P)
  246. commands allow movement from one paragraph to another.
  247.  
  248. - nasty algorith fixed....
  249.  
  250.     A rather nasty algorithm in the kill buffer processing got
  251. rewritten which ends up reducing the speed neeeded to wipe large areas
  252. immensly. This may have appeared to lock up the machine on the older
  253. versions when a large wipe was attempted.
  254.  
  255. - Header files rearranged
  256.  
  257.     ESTRUCT.H    Structure and option declarations
  258.     EDEF.H        Global and external variable declarations
  259.     EPATH.H        Help and startup file paths
  260.     EFUNC.H        Name binding table
  261.     EBIND.H        Initial key binding tables
  262.  
  263. - Paragraph filling!!
  264.  
  265.     The fill-paragraph (<ESC> Q) command reformats the current
  266. paragraph filling to the fill column as possible. Very handy....
  267.  
  268. - Long lines
  269.  
  270.     Lines longer than the screen now scroll right-left as you move
  271. through them. Seeing what your editing is a big improvement.
  272.  
  273. - word move and deletes
  274.  
  275.     Due to massive demand by my users here, I have changed the way
  276. word move and delete work so that they are more consistant and usefull.
  277. But this change is configurable by changing the value of the NFWORD
  278. constant in ESTRUCT.H
  279.  
  280. - View flag on command line
  281.  
  282.     -v on the command line causes the editor to read a file in with
  283. VIEW mode set on. -e (edit) is the opposite causing it to read in for
  284. editing (which is also the default).
  285.  
  286. - Quick EXIT has done a quick change....
  287.  
  288.     (sorry....) Quick-exit now writes out all changed buffers before
  289. exiting.
  290.  
  291. - Very long file lines
  292.  
  293.     Very long lines (>255 chars) being read from a file now get
  294. wrapped on multiple lines (instead of simple refusing to read any more
  295. of the file as before) The user is warned about them with a message at
  296. the end of the read.
  297.  
  298. - Space not clearing messages
  299.  
  300.     Many of my users complained about the space not inserting itself
  301. after a message (it just cleared the message line). This is now
  302. configuable in ESTRUCT.H
  303.  
  304. - HELP commands!
  305.  
  306.     the describe-key (^X ?) command allows the user to type in one
  307. command and the editor echos back the command name bound to that key.
  308. The help (<ESC> ?) command grabs the top window (or splits if if not
  309. there) and reads in the EMACS.HLP file. The list of places to look for
  310. the help file are in EPATH.H
  311.  
  312. - View file command
  313.  
  314.     View-file (^X ^V) is the same as find-file (old visit-file)
  315. except it leaves the found file in VIEW mode.
  316.  
  317. - Improved updating
  318.  
  319.     On the systems that code has been written for, the screen update
  320. routines will defer updating if there is type ahead present. This makes
  321. all movement commands much more pleasant. The code for this is in the
  322. function typahead() in TERMIO.C. This is currently implimented for
  323. MSDOS, BSD4.2 and possible the AMIGA (Some one please check this out. I
  324. only have limited access to an AMIGA)
  325.  
  326. - Buffer lists
  327.  
  328.     are now alphabetically maintained.
  329.  
  330. - Insert file
  331.  
  332.     Insert-file (^X ^I) allows you to insert the contents of a file
  333. at the current position of the current buffer. very useful
  334.  
  335. - Scroll next window
  336.  
  337.     Scroll-next-down (<ESC> ^V) and scroll-next-up (<ESC> ^Z) allow
  338. you to scroll the next window up and down by pages.
  339.  
  340. - Arguments to searches
  341.  
  342.     All searches and replaces now take a preceding numeric argument
  343. to say how many times, rather than all the way to the bottom of the
  344. file.
  345.  
  346. - Binding keys
  347.  
  348.     The bind-to-key (^C) function allows you to change what
  349. command a key invokes. It will promt you for a command name, and then a
  350. keystroke sequence. This is happy. Unbind-key (<ESC> ^C) allows you to
  351. make a key now longer have a function. (This is good when you accidently
  352. bind <RET> or a letter to something)
  353.  
  354. - Execute named command
  355.  
  356.     Will prompt you for a command name, and then execute it. This
  357. allows you to execute commands that are not currently bound to any keys.
  358.  
  359. - Command name completion
  360.  
  361.     Any time you are prompted for a command, if you type in part of
  362. it and hit the space bar, the editor will try to finish it. If the bell
  363. righs, it means there is now command like what you are typing.
  364.  
  365. - Describe bindings
  366.  
  367.     Describe-bindings (not bound) will display a list of all the
  368. commands in a window (splitting if neccesary) and the keys bound with
  369. them. These will reflect the current bindings and not the default ones.
  370. This is a good way to find out the name of a command you can't remember,
  371. or which I picked a bad name for. (The names have been changed to
  372. protect the guilty (thats me) and are in EFUNC.H You too can change them
  373. if you are into it).
  374.  
  375. - Executing stuff
  376.  
  377.     The execute-command-line command prompts you for a command line
  378. on the bottom of the screen in the form:
  379.  
  380.     {Numeric argument} <command-name> {<string arg> {<string arg>}}
  381.  
  382.     (where {} are for optional stuff) and then executes it.
  383.  
  384.     Execute-buffer executes a number of these commands in a buffer.
  385. If any errors are found, the buffers current location will be set to the
  386. begining of the line with the error in it.
  387.  
  388.     Execute-file will read a file into a buffer, execute it, and
  389. then kill the buffer if it executed to completion with no errors.
  390.  
  391. - Startup file
  392.  
  393.     MicroEMACS will attempt to execute a startup file (whose name is
  394. in EPATH.H) on startup. The MSDOS name is EMACS.RC and under unix it is
  395. usually .emacsrc
  396.  
  397. - Multiple files on the command line
  398.  
  399.     MicroEMACS will now except a list of files on the command line.
  400. These files will all be assigned buffers, but will not be read in until
  401. the buffer is brought up in a window. -v and -e switches affect all the
  402. files following them.
  403.  
  404. - FILE LOCKING
  405.  
  406.     This is for people on multi-user UNIX systems. What this feature
  407. can do is prevent two people from editing the same file and stomping on
  408. each others edits. Unfortunatly, the actually locking mechanism used
  409. where I work is propritory so I could not send it out, but I have left
  410. all the code (conditionally defined by the FILOCK symbol in ESTRUCT.H)
  411. leading up to the actually locking routines so some one else can add it
  412. with little effort. Here are the comments for the actual routines that
  413. need to be added:
  414.  
  415. /**********************
  416.  *
  417.  * dolock -- lock the file fname
  418.  *
  419.  * if successful, returns NULL 
  420.  * if file locked, returns username of person locking the file
  421.  * if other error, returns "LOCK ERROR: explanation"
  422.  *
  423.  *********************/
  424.  
  425. char *dolock(fname)
  426.  
  427. char *fname;    /* file name to be locked */
  428.  
  429.  
  430. and
  431.  
  432.  
  433. /**********************
  434.  *
  435.  * undolock -- unlock the file fname
  436.  *
  437.  * if successful, returns NULL 
  438.  * if other error, returns "LOCK ERROR: explanation"
  439.  *
  440.  *********************/
  441.  
  442. char *undolock(fname)
  443.  
  444. char *fname;        /* file name to unlock */
  445.  
  446.  
  447.     If some one wants to write these functions so they can be
  448. distributed publicly, please mail a separate file with them to me
  449. and I will include them with these sources for others to use.
  450.  
  451. - HP150 function/cursor key support
  452.  
  453.     is now finished and working.
  454.  
  455.